﻿#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

//1.定义结构体格式；
/*
* struct 结构体名称
* {
*	结构体成员列表
* }
*
* //13.定义结构体变量；
* struct 结构体名称 结构体变量名
* 结构体变量名.结构体成员列表 = 值	；如果是字符串类型，需要使用strcpy。
*/
/*
struct students
{
	//2.成员列表；
	char name[21];
	unsigned int age;
	char tel[16];
	float scores[3];
	char sex;
};*/
//10.第四种赋值方式；
/*
struct students
{
	//2.成员列表；
	char name[21];
	unsigned int age;
	char tel[16];
	float scores[3];
	char sex;
}stu,stu2,stu3;
*/
//12.第五种赋值方式；
struct students
{
	//2.成员列表；
	char name[21];
	unsigned int age;
	char tel[16];
	float scores[3];
	char sex;
}stu = { "尼古拉斯",500,"13888888888",100.0f,200,300,'M' };

//main118：结构体的定义和使用
int main118()
{
	//6.按照结构体顺序，赋值；
	//struct students stu = { "尼古拉斯",500,"13888888888",100.0f,200,300,'M' };

	//8.第二种赋值方式；
	//struct students stu = { .sex = 'M',.name = "刘能",.tel = "13777777777",.scores[0] = 100,.scores[1] = 99,.scores[2] = 88,.age = 48 };

	//9.第三种赋值方式；
	/*struct students stu;
	//7.字符串赋值，不能直接赋值，使用strcpy字符串拷贝；
	//stu.name = "谢广坤"；
	strcpy(stu.name, "谢广坤");
	stu.age = 50;
	strcpy(stu.tel, "13777777778");
	stu.scores[0] = 90;
	stu.scores[1] = 80;
	stu.scores[2] = 70;
	stu.sex = 'F';*/

	//11.也可以直接在定义结构体时赋值，不用这样写；
	/*strcpy(stu.name, "谢广坤");
	stu.age = 50;
	strcpy(stu.tel, "13777777778");
	stu.scores[0] = 90;
	stu.scores[1] = 80;
	stu.scores[2] = 70;
	stu.sex = 'F';*/

	printf("3.输出结构体students的成员：\n");
	printf("姓名：%s\n", stu.name);//姓名：尼古拉斯
	printf("年龄：%d\n", stu.age);//年龄：500
	printf("电话号码：%s\n", stu.tel);//电话号码：13888888888

	//4.%.1f是保留一位小数输出的意思；
	printf("成绩：%.1f	%.1f	%.1f\n", stu.scores[0], stu.scores[1], stu.scores[2]);//成绩：100.0     200.0   300.0

	//5.转成字符串显示，不用char显示；一个字母M是字符，一个汉字男，是字符串；
	//printf("性别：%c\n", stu.sex);
	printf("性别：%s\n", stu.sex == 'M' ? "男" : "女");//性别：男

	system("pause");
	return EXIT_SUCCESS;
}